Some calendaring applications use a rules-based approach to build and store instances of recurring appointments. In a calendaring application that uses a rules-based approach, a recurring appointment is stored as a rule or definition (“recurring appointment definition”) used to build the instances of the recurring appointment. When a request is received to view a calendar during a specified time period, the calendaring application uses the recurring appointment definition to generate and display instances of the recurring appointment during the time period.
Exceptions to a recurring appointment may be stored with the recurring appointment definition. For example, a user who has a recurring appointment scheduled for every Wednesday morning may need or may desire to change one or more instances of the recurring appointment to accommodate personal or business needs. These exceptions can be represented by exception data that describes how the exceptions deviate from the recurring appointment definition. The exception data may be stored or associated with the recurring appointment definition.
In some circumstances, a user may need to modify the recurring appointment. In order to modify recurring appointment definitions, some rules-based calendaring software creates a new recurring appointment definition and deletes the original recurring appointment definition. Because the exception data described above is stored or associated with the original recurring appointment definition, past exceptions, as well as other notes or data associated with past appointments and/or exceptions (“historical data”), may be deleted with the original recurring appointment definition. Thus, important information associated with the original recurring appointment may be lost when modifying recurring appointments using rules-based calendaring software.
Additionally, modification of a recurring appointment definition may create complications with respect to synchronization between rules-based calendaring applications and server-based calendaring applications that store all instances of recurring appointments as individual events (“expansion-based calendaring applications”). If a recurring appointment definition utilized by rules-based calendaring software is synchronized with an expansion-based calendaring application and later modified, the calendar maintained by the expansion-based calendaring application may be populated with instances of the previous version of the recurring appointment, as well as instances of the new version of the recurring appointment.
It is with respect to these and other considerations that the disclosure made herein is presented.